using System;
namespace AppToolKit.Core.Context
{
	public interface IContextManager
	{
		T Create<T>();
		T Create<T>(params object[] args);
		object Create(Type type);
		object Create(Type type, params object[] args);
		object GetObject(string name);
		object GetObject(Type type);
		string GetObjectName(Type type);
		bool IsSingleton(Type type);
		T GetObject<T>();
		object GetObjectByAssembly(string assembly, Type type);
		bool ContainsObject(Type type);
		void Register(Type type, bool singleton);
		void AutowireObject(object target);
		void Dispose<T>();
		void Dispose(Type t);
		void Dispose(string objectName);
	}
}
